#include "Date.h"

void TestDate01()
{
    // Date d1(1999, 1, 1);
    // d1.Print();

    // Date d2(2004, 2, 28);
    // Date d3(d2);

    // d2.Print();
    // d3.Print();

    // // 假设我们想对成员函数Print的指针类型进行重定义

    // typedef void (Date::*PF)();

    // // 此时PF表示Date中Print函数的指针类型
    // PF pf = &Date::Print;

    // (d3.*pf)();

    // Date d1(2025,3,17);
    // d1.Print();
    // d1+=10000;
    // d1.Print();

    // const Date d3;
    // d3.Print();

    // Date d1(2025,3,17);
    // d1.Print();
    // Date d2 = d1+10000;
    // d1.Print();
    // d2.Print();

    // Date d1(2025,3,17);
    // d1.Print();
    // d1-=10000;
    // d1.Print();

    // Date d1(2025, 3, 17);
    // // d1.Print();
    // // Date d2 = d1 - 10000;
    // // d1.Print();
    // // d2.Print();

    // Date d2(2030,4,3);
    // Date d3 = d1;
    // std::cout<<(d2 > d1)<<std::endl;
    // std::cout<<(d3 == d1)<<std::endl;
    // std::cout<<(d2 < d1)<<std::endl;
    // std::cout<<(d3 != d1)<<std::endl;

    Date d1(2025, 3, 19);
    Date d2(2030, 4, 5);

    std::cout << (d2 - d1) << std::endl;
}

void TestDate02()
{
    Date d1;
    d1.Print();
    Date d2 = d1++;
    d2.Print();
    d1.Print();
    std::cout << "---" << std::endl;
    Date d3;
    d3.Print();
    Date d4 = ++d3;
    d4.Print();
    d3.Print();
}

void TestDate03()
{
    // Date d1;
    // // std::cout << d1 << std::endl;
    // // d1++;
    // // std::cout << d1 << std::endl;
    // // d1 += 100;
    // // std::cout << d1 << std::endl;

    // std::cin >> d1;
    // std::cout << d1 << std::endl;

    // //非法创建对象
    // Date d1(1999,2,99);
    // d1.Print();


    Date d1;
    std::cout<<d1-10000<<std::endl<<d1+(-10000)<<std::endl;
}

int main()
{
    // TestDate01();
    // TestDate02();

    TestDate03();

    return 0;
}